package com.shortlink.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shortlink.pojos.dto.req.UserLoginReqDTO;
import com.shortlink.pojos.dto.req.UserReqDTO;
import com.shortlink.pojos.dto.resp.UserLoginRespDTO;
import com.shortlink.pojos.dto.resp.UserRespDTO;
import com.shortlink.pojos.entity.UserDO;

public interface IUserService extends IService<UserDO> {
    UserLoginRespDTO login(UserLoginReqDTO userLoginReqDTO);

    void register(UserLoginReqDTO userLoginReqDTO);

    /**
     * 查询用户名是否存在
     *
     * @param username 用户名
     * @return 用户名存在返回 True，不存在返回 False
     */
    Boolean hasUsername(String username);

    void cancelUser();

    void updateUser(UserReqDTO userReqDTO);

    UserRespDTO mine();

    void logout();
}
